Un dispositivo che selettivamente crea una connessione tra un canale o
porta entrante e un canale o porta uscente. Nel mondo telefonico lo switch
sÆidentifica con un centralino o con una centrale telefonica, nel mondo
delle reti locali è invece un dispositivo che collega tra loro diversi
segmenti smistando selettivamente i pacchetti in transito così che vadano
unicamente al segmento di destinazione e non agli altri. In questo modo si
aumenta la banda passante di ogni singolo segmento poiché si toglie il
traffico non necessario.
Lo switch è unÆapparecchiatura che, alla pari di un bridge, collega tra
loro diversi segmenti logici di una rete (diversi domini di collisione -
vedi la prima parte) e che consente il passaggio dÆinformazioni dallÆuno
allÆaltro, impedendo tuttavia che lÆintero traffico presente su uno di
essi si riversi negli altri, e viceversa, come invece accadrebbe se la LAN
Ethernet non disponesse di alcun filtro al proprio interno. Lo switch deve
disporre almeno di due porte, anche se nelle configurazioni più comuni ne
troviamo almeno 8. La sola differenza rispetto al bridge è che lo switch
esegue tutte le proprie elaborazioni in hardware e non via software,
perciò non rallenta il fluire del traffico tra i segmenti. In gergo
tecnico si dice che la connessione sia wire speed cioè lasci transitare i
pacchetti alla velocità massima consentita dal tipo di conduttore usato
per il cablaggio. Nella realtà, un rallentamento esiste sempre, anche se
marginale, e la sua entità dipende dal modo in cui lo switch funziona. La
primissima tecnica di switching, che eredita in toto la modalità operativa
dei bridge, si chiama store-and-forward. Ogni trama che arriva su una
delle porte dello switch viene incamerata per intero in una speciale
porzione di memoria (buffer) e quindi scartata o trasferita a un altro
segmento a seconda dellÆindirizzo di destinazione (MAC address) indicato
al suo interno. LÆoperazione è velocissima, ma comporta in ogni caso un
certo rallentamento perché la trama deve arrivare per intero nel buffer
dello switch prima di cominciare a essere ritrasmessa su un altra porta (a
cui corrisponde un altro segmento, appunto). ╚ la tecnica di commutazione
più affidabile, poiché prima di rispedire il pacchetto ci si accerta di
averlo per intero e se ne verifica la correttezza attraverso il calcolo
del CRC (Cyclic Redundancy Check), ed è lÆunica utilizzabile quando si
collegano segmenti funzionanti a velocità diverse, come Ethernet e Fast
Ethernet, per esempio. Tuttavia su impianti molto veloci, come nel caso di
una dorsale che funziona tutta a 100 Mbps o più, il numero di trame in
circolazione è molto elevato e il ritardo che si accumula per la
registrazione di ciascuna si fa sentire.
LÆalternativa ideata per eliminare questÆultimo inconveniente si chiama
commutazione cut-through. La parola significa ñtagliare attraverso",
ñprendere una scorciatoia" e in effetti è proprio quello che accade. Non
appena lo switch comincia a ricevere una trama su una qualsiasi delle sue
porte, ne legge lÆindirizzo di destinazione e, se questo corrisponde a un
segmento collegato a unÆaltra porta, inizia immediatamente a trasmettere
la trama senza aspettare che questa sia arrivata per intero. In questo
modo, dopo aver letto lÆindirizzo, la trasmissione in uscita avviene
quasi in contemporanea con la ricezione, e il ritardo è minimo (fino a 20
volte inferiore a quello della tecnica store-and-forward). Benché molto
efficace sotto il profilo della velocità, questa tecnica presenta il
difetto di far passare anche porcheria. Infatti vengono ritrasmesse anche
le trame difettose (troppo corte) risultanti da collisioni o da altri
problemi nel segmento di provenienza. Lo switch si limita a controllare
lÆindirizzo e quindi fa passare tutto quel che segue senza controllo
alcuno. Inoltre il beneficio del sistema cut-through diminuisce quando il
traffico diventa molto intenso e continuo. In questa circostanza è facile
che una trama trovi la porta di uscita ancora occupata a trasmettere la
trama precedente e perciò deve comunque essere memorizzata per intero nel
lÆattesa di essere trasmessa (si torna alla modalità store-and-forward).
Tale fenomeno è ancora più visibile con switch dotati di numerose porte
visto che la quantità di traffico complessiva che si genera al loro
interno è sempre elevata.
Dal confronto di questi due approcci, ne è stato ideato un terzo,
intermedio, che si chiama fragment-free switching. Alla pari della
modalità cut-through, anche qui si aspetta di ricevere lÆintera trama
prima di iniziare a trasmetterla, però ci si assicura che questa sia
almeno lunga 64 byte (il minimo consentito dallo standard Ethernet) e si
scarta qualsiasi frammento di trama che abbia dimensioni inferiori. In una
rete Ethernet progettata con cura, gli unici errori ricorrenti sono le
trame corte provocate da collisioni (runt) e per definizione queste hanno
una dimensione inferiore ai 64 byte.
Uno switch fragment-free è più veloce di un modello store-and-forward e al
contempo non inonda il segmento di destinazione con frammenti di trama
inutilizzabili. Il controllo, tuttavia, non è completo visto che
continuano in ogni caso a passare le trame troppo lunghe (che sono
peraltro il prodotto di malfunzionamenti sulla rete, come abbiamo visto
sullo scorso numero, e che vengono risolte sostituendo i componenti
difettosi). Per filtrare queste ultime non esiste alternativa se non
quella di utilizzare il sistema store-and-forward: si aspetta che la trama
arrivi per intero, la si misura e la si fa proseguire solo se va tutto
bene. Ciascuna di queste tre modalità offre vantaggi specifici e
lÆimpiego dellÆuna piuttosto che dellÆaltra è anche determinato dallo
stato contingente in cui si trova la rete: unÆalta percentuale di
collisioni e di errori oppure un traffico normale. Di conseguenza gli
switch più moderni ed evoluti offrono una funzione che alcuni chiamano
switching adattativo e che consiste nel monitorare costantemente lo stato
della LAN e nel passare in modo dinamico a una delle tre modalità di
commutazione che abbiamo prima visto. Questo genere di switch consente
allÆamministratore di regolare le soglie di errore oltre le quali
lÆapparato abbandona la modalità cut-thorugh per scendere al sistema
fragment-free oppure al sistema store-and-forward. Diventa così possibile
definire un modello di comportamento che si adatta perfettamente al
proprio impianto.
Controllo di flusso e buffering
UnÆultima caratteristica di differenziazione tra i commutatori Ethernet è
il modo in cui regolano il flusso di traffico. In condizioni normali il
traffico in uscita dovrebbe stare al passo con quello in entrata, ma
quando questo non avviene e le trame in ingresso si accumulano oltre la
ricettività dei buffer interni, lo switch inizia a scartarle, il che
introduce ritardi significativi sulla rete. Infatti la stazione mittente
non ha modo di sapere che sono state scartate perciò continua a
trasmettere peggiorando ancora di più la situazione e alla fine, non
ricevendo risposta, si accorge che qualcosa è andato storto e riprende a
trasmettere da capo. Alcuni switch ovviano a questo inconveniente con
buffer più capienti, però questo aggiunge ritardi di propagazione perché,
prima di essere trasmessi, i pacchetti in entrata devono attendere che
tutti quelli in attesa siano stati spediti prima di uscire a loro volta.
UnÆaltra soluzione consiste nellÆusare il sistema delle collisioni per
costringere a rallentare la stazione che sta trasmettendo troppo. Esistono
due modi per farlo. Vediamo il più rudimentale: non appena una porta
diventa saturata di traffico lo switch manda un segnale di collisione su
tutte le altre. In tal modo si costringe lÆintera rete a rallentare fino
a quando la situazione è tornata normale su quel particolare segmento. Il
metodo più avanzato è invece quello di simulare la collisione solo su quei
pacchetti che sono destinati alla porta congestionata, lasciando le altre
porte libere di trasmettere tra loro. In pratica non appena si presenta
sulla porta A una trama che deve andare sul segmento B congestionato, lo
switch ñcollega" le porte A e B di modo che le collisioni presenti
sullÆuna seconda, quella congestionata, si propaghino anche sullÆaltra,
quella che trasmette. In questo modo si rallenteranno le trasmissioni solo
delle macchine collegate a questÆultima.
Anche il modo in cui i buffer interni vengono utilizzati ha la sua
importanza. Il buffer può trovarsi alla porta di entrata, alla porta di
uscita oppure nel mezzo del percorso che la trama segue allÆinterno dello
switch. Nel primo caso si sviluppano colli di bottiglia ogni volta che i
pacchetti in entrata devono essere trasmessi su più porte una delle quali
è molto occupata. Fino a che questa si decongestiona, anche i pacchetti
destinati alla porta libera verranno ritardati. Nel secondo caso
lÆimpiccio nasce con la situazione inversa; cioè ogni volta che diverse
porte devono trasmettere tutte alla stessa porta e una delle porte in
entrata è molto trafficata. La porta di entrata meno impegnata si troverà
esclusa dallÆaccesso al buffer di uscita fino a quando lÆaltra non avrà
terminato di monopolizzarlo. La soluzione preferita da alcuni è la terza,
che consiste nel costruire due buffer separati per ciascun paio di porte.
In questo modo la porta A può ricevere dalla porta B usando un buffer
riservato, rispondere alla porta B usando un altro buffer riservato e al
tempo stesso dialogare con le porte C, D, eccetera usando due buffer per
ciascuna di queste (uno di andata e uno di ritorno). Questi buffer possono
essere piccoli e contenere un solo pacchetto, eliminando così tutti gli
inconvenienti legati alla presenza di pacchetti multipli nel medesimo
buffer.
Differenza tra switching statico e switching dinamico
LÆuso degli switch è diventato talmente popolare negli ultimi due o tre
anni che si cerca di spacciare per tali anche cose che non lo sono. Quando
si parla di switching statico oppure di port switching (sono sinonimi) ci
si riferisce in realtà a un hub (semplice ripetitore) che può accorpare
liberamente le proprie porte in segmenti autonomi, spostando a volontà una
porta da un segmento allÆaltro, così da ripartire il traffico. Resta
inteso che tutte le porte così ñcommutate" condividono la banda passante
con le altre porte dello stesso gruppo e lÆunico modo in cui uno di
questi gruppi di porte può comunicare con un altro gruppo di porte dello
stesso hub è quello di collegare i due gruppi ad altrettante porte di uno
switch oppure di un router. Praticamente tutti gli hub di grandi
dimensioni dispongono della funzione di port switching: semplifica la
riorganizzazione periodica dei gruppi di lavoro senza costringere a
interventi manuali: la configurazione avviene via software. Tuttavia lo
switch autentico è quello dinamico, che si comporta come abbiamo visto
prima. Tra gli switch dinamici esistono però altre due divisioni: lo
switching hub è un dispositivo che accetta una sola macchina per porta.
Benché questa sia la situazione ideale visto che garantisce la massima
larghezza di banda a ciascuna stazione, è poco pratica poiché raramente la
singola macchina riesce davvero a sfruttarla appieno e il costo non è
giustificato. I segment switch (commutatori di segmento) accettano invece
la connessione di un intero segmento a ciascuna delle proprie porte,
consentendo anche la connessione di una singola macchina se lo si
desidera. Questa soluzione è la più diffusa poiché suddivide la rete in
aree omogenee in termini di traffico, aumentandone subito la capienza
senza investimenti significativi: un semplice segment switch con otto
porte a 10 Mbps e 1 porta a 100 Mbps può fare miracoli.
|
|